package com.yupi.questionai.esdao;

import com.yupi.questionai.model.dto.post.PostEsDTO;
import java.util.List;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;

/**
 * 帖子 ES 操作
 * 该接口定义了与 Elasticsearch 交互的帖子相关操作
 *  继承 ElasticsearchRepository 以获得基本的 ES 操作能力
 * 
 * @author CodeGeeX
 * @since 1.0
 */
/**
 * 帖子 ES 操作
 * 该接口定义了与 Elasticsearch 交互的帖子相关操作
 *  继承 ElasticsearchRepository 以获得基本的 ES 操作能力
 *
 * ElasticsearchRepository 特点：
 * 1. 提供了基本的 CRUD 操作（保存、删除、查找等）
 * 2. 支持基于方法的查询，Spring Data 会根据方法名自动生成查询
 * 3. 提供了分页和排序功能
 * 4. 支持自定义查询方法和注解查询
 * 5. 泛型参数 <PostEsDTO, Long> 表示：
 *    - PostEsDTO：存储在ES中的文档类型
 *    - Long：文档的主键类型
 *
 * @author CodeGeeX
 * @since 1.0
 */
public interface PostEsDao extends ElasticsearchRepository<PostEsDTO, Long> {

    /**
     * 根据用户ID查询帖子列表
     *
     * @param userId 用户ID
     * @return 返回该用户的所有帖子列表
     */
    List<PostEsDTO> findByUserId(Long userId);
}